home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_ImportAdv / GraphicImport.h < prev    next >
Text File  |  1992-12-19  |  5KB  |  152 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34. *    GraphicImport.h
  35. *
  36. *    This subclass of handles much of the overhead for imported
  37. *    files such as tiff files and EPS files. Subclasses of this object
  38. *    provide the specific methods that differeniate the two.
  39. *
  40. *    Version:    2.0
  41. *    Author:    Ken Fromm
  42. *    History:
  43. *            03-20-91        Created the file.
  44. */
  45.  
  46. #import <objc/Object.h>
  47. #import "ImportApp.h"
  48. #import "epsfstruct.h"
  49.  
  50. #import <appkit/graphics.h>
  51. #import <objc/hashtable.h>
  52.  
  53. #define  PTS_GRAPHIC        8
  54. #define  SIZE_MIN                16
  55. #define  IMAGE_MAX            1500        /* Maximum size for using an NXImage */
  56.  
  57. #define  LEFT                    0
  58. #define  MIDDLE                1
  59. #define  RIGHT                2
  60. #define  TOP                    0
  61. #define  BOTTOM                2
  62.  
  63. #define  XPOS                18
  64. #define  YPOS                49
  65.  
  66. /*
  67. *    The image variable holds the NXImage (the offscreen buffer
  68. *    the file. The imagerep variable holds the NXEPSImageRepSub.
  69. *    This class retains the original dimensions of the file as
  70. *    an instance variable. The rotation stores the rotation of
  71. *    the file and the bounds holds the position and dimensions
  72. *    of the file in the document.(The dimensions are in unrotated
  73. *    space.
  74. */
  75. @interface GraphicImport : Object
  76. {
  77.     NXAtom        filename;            /* the name of the file */
  78.  
  79.     id            image,            /* id of the NXImage that serves as the bit cache */
  80.                 imagerep;        /* id of the NXImage rep that draws the file */
  81.  
  82.     float            rotation;            /* the angle of rotation */
  83.  
  84.     NXRect        bounds;            /* the non-rotated bounding box in the document */
  85.  
  86.     struct _gflags {
  87.         unsigned char  new:1;            /* constrained to original aspect when new */
  88.         unsigned char  selected:1;        /* selected or not */
  89.         unsigned char  dirty:1;            /* needs to be redrawn */
  90.         unsigned char  unimageable:1;    /* cannot be imaged - (path not valid) */
  91.         unsigned char  error:1;            /* error when imaging */
  92.         unsigned char  filler:3;
  93.     } gflags;
  94.  
  95. }
  96.  
  97. - initFromFile:(const char *) file;
  98. - initFromStream:(NXStream *) stream;
  99.  
  100. - (BOOL) listUnavailableResources:(ResourceList *) resourceList;
  101. - addResources:(Resource *) resourceDoc  for:(NXRect *) r;
  102.  
  103. - free;
  104. - freeTemp;
  105. - copyTemp; 
  106.  
  107. - setFilename:(const char *) file;
  108. - setImage:anImage;
  109. - setImageRep:anImageRep;
  110.  
  111. - setSelected:(BOOL) flag;
  112. - (BOOL) selected;
  113. - setImageable:(BOOL) flag;
  114. - (BOOL) imageable;
  115. - (BOOL) error;
  116.  
  117. - setPoint:(int) pt_num  :(const NXPoint *) pt;
  118. - setSize:(const NXSize *) aSize;
  119. - setOrigin:(const NXPoint *) pt;
  120. - setBounds:(const NXRect *) aRect;
  121.  
  122. - setOriginalSize;
  123. - setOriginalRatio;
  124.  
  125. - rotateAboutPoint:(NXPoint *) aPoint  withAngle:(float) angle;
  126. - moveAll:(const NXPoint *) pt;
  127.  
  128. - getPoint:(int) pt_num  :(NXPoint *) pt;
  129. - getBounds:(NXRect *)aRect;
  130. - getScrollRect:(NXRect *)aRect  forPtNum:(int) pt_num;
  131.  
  132. - constrainAngle:(float *)angle  withFlags:(int) flags;
  133. - constrainPoint:(NXPoint *)aPt  forPtNum:(int *) pt_num
  134.         inRect:(const NXRect *) viewRect  withFlags:(int) flags;
  135.  
  136. - hitControl:(const NXRect *) hitRect  :(int *) pt_num  forSize:(float) size;
  137. - hitObject:(UPath *) hitUpath  ifNotSelected:(BOOL) flag;
  138.  
  139. - putControlPoints:(UPath *)buffer  forRect:(NXRect *)r  :(NXPoint *) lastPoint;
  140.  
  141. - drawBoxforRect:(NXRect *) r  imaging:(BOOL) imageFlag;
  142. - drawObject:(NXRect *) r  withFlags:(int) flags  inView:view;
  143.  
  144. - write:(NXTypedStream *)stream;
  145. - read:(NXTypedStream *)stream;
  146. - awake;
  147.  
  148. - displayError;
  149.  
  150. @end
  151.  
  152.